package com.dragon.modules.yuegou.query.wallet;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.wallet.CheckWithdrawRecordEntity;
import com.dragon.modules.yuegou.enums.wallet.CheckWithdrawRecordStatus;
import com.dragon.modules.yuegou.enums.wallet.CheckWithdrawRecordUserType;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 提现审核记录 动态查询条件
 * 
 * @author pbuilder generated
 * @date 2019-11-19 19:23:49
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class CheckWithdrawRecordQuery extends CheckWithdrawRecordEntity implements Query<CheckWithdrawRecordEntity> {

    /** 提现审核记录id查询条件 */
	@JsonUnwrapped(prefix = "id")
	private Condition<String> idCondition;

    /** 用户id查询条件 */
	@JsonUnwrapped(prefix = "userId")
	private Condition<String> userIdCondition;

    /** 钱包ID查询条件 */
	@JsonUnwrapped(prefix = "walletId")
	private Condition<String> walletIdCondition;

    /** [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件 */
	@JsonUnwrapped(prefix = "userType")
	private Condition<CheckWithdrawRecordUserType> userTypeCondition;

    /** 提现金额查询条件 */
	@JsonUnwrapped(prefix = "withdrawDeposit")
	private Condition<BigDecimal> withdrawDepositCondition;

    /** 提现后金额查询条件 */
	@JsonUnwrapped(prefix = "amountAfterWithdrawal")
	private Condition<BigDecimal> amountAfterWithdrawalCondition;

    /** 开户行查询条件 */
	@JsonUnwrapped(prefix = "bankOfDeposit")
	private Condition<String> bankOfDepositCondition;

    /** 银行卡号查询条件 */
	@JsonUnwrapped(prefix = "encBankNo")
	private Condition<String> encBankNoCondition;

    /** 账户名查询条件 */
	@JsonUnwrapped(prefix = "accountName")
	private Condition<String> accountNameCondition;

    /** [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件 */
	@JsonUnwrapped(prefix = "status")
	private Condition<CheckWithdrawRecordStatus> statusCondition;

    /** 创建人ID查询条件 */
	@JsonUnwrapped(prefix = "createdBy")
	private Condition<String> createdByCondition;

    /** 创建时间查询条件 */
	@JsonUnwrapped(prefix = "createdTime")
	private Condition<LocalDateTime> createdTimeCondition;

    /** 审核人查询条件 */
	@JsonUnwrapped(prefix = "checkedBy")
	private Condition<Long> checkedByCondition;

    /** 审核时间查询条件 */
	@JsonUnwrapped(prefix = "checkedTime")
	private Condition<LocalDateTime> checkedTimeCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public CheckWithdrawRecordQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public CheckWithdrawRecordQuery(CheckWithdrawRecordEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public CheckWithdrawRecordQuery(CheckWithdrawRecordQuery other) {
		super(other);
		if(other.idCondition != null) {
			this.idCondition = other.idCondition.copy();
		}
		if(other.userIdCondition != null) {
			this.userIdCondition = other.userIdCondition.copy();
		}
		if(other.walletIdCondition != null) {
			this.walletIdCondition = other.walletIdCondition.copy();
		}
		if(other.userTypeCondition != null) {
			this.userTypeCondition = other.userTypeCondition.copy();
		}
		if(other.withdrawDepositCondition != null) {
			this.withdrawDepositCondition = other.withdrawDepositCondition.copy();
		}
		if(other.amountAfterWithdrawalCondition != null) {
			this.amountAfterWithdrawalCondition = other.amountAfterWithdrawalCondition.copy();
		}
		if(other.bankOfDepositCondition != null) {
			this.bankOfDepositCondition = other.bankOfDepositCondition.copy();
		}
		if(other.encBankNoCondition != null) {
			this.encBankNoCondition = other.encBankNoCondition.copy();
		}
		if(other.accountNameCondition != null) {
			this.accountNameCondition = other.accountNameCondition.copy();
		}
		if(other.statusCondition != null) {
			this.statusCondition = other.statusCondition.copy();
		}
		if(other.createdByCondition != null) {
			this.createdByCondition = other.createdByCondition.copy();
		}
		if(other.createdTimeCondition != null) {
			this.createdTimeCondition = other.createdTimeCondition.copy();
		}
		if(other.checkedByCondition != null) {
			this.checkedByCondition = other.checkedByCondition.copy();
		}
		if(other.checkedTimeCondition != null) {
			this.checkedTimeCondition = other.checkedTimeCondition.copy();
		}
	}

	@Override
	public QueryWrapper<CheckWithdrawRecordEntity> toQueryWrapper() {
		QueryWrapper<CheckWithdrawRecordEntity> wrapper = new QueryWrapper<>(this);
		if (idCondition != null) {
			idCondition.toWrapper(wrapper, COL_ID);
		}
		if (userIdCondition != null) {
			userIdCondition.toWrapper(wrapper, COL_USER_ID);
		}
		if (walletIdCondition != null) {
			walletIdCondition.toWrapper(wrapper, COL_WALLET_ID);
		}
		if (userTypeCondition != null) {
			userTypeCondition.toWrapper(wrapper, COL_USER_TYPE);
		}
		if (withdrawDepositCondition != null) {
			withdrawDepositCondition.toWrapper(wrapper, COL_WITHDRAW_DEPOSIT);
		}
		if (amountAfterWithdrawalCondition != null) {
			amountAfterWithdrawalCondition.toWrapper(wrapper, COL_AMOUNT_AFTER_WITHDRAWAL);
		}
		if (bankOfDepositCondition != null) {
			bankOfDepositCondition.toWrapper(wrapper, COL_BANK_OF_DEPOSIT);
		}
		if (encBankNoCondition != null) {
			encBankNoCondition.toWrapper(wrapper, COL_ENC_BANK_NO);
		}
		if (accountNameCondition != null) {
			accountNameCondition.toWrapper(wrapper, COL_ACCOUNT_NAME);
		}
		if (statusCondition != null) {
			statusCondition.toWrapper(wrapper, COL_STATUS);
		}
		if (createdByCondition != null) {
			createdByCondition.toWrapper(wrapper, COL_CREATED_BY);
		}
		if (createdTimeCondition != null) {
			createdTimeCondition.toWrapper(wrapper, COL_CREATED_TIME);
		}
		if (checkedByCondition != null) {
			checkedByCondition.toWrapper(wrapper, COL_CHECKED_BY);
		}
		if (checkedTimeCondition != null) {
			checkedTimeCondition.toWrapper(wrapper, COL_CHECKED_TIME);
		}
		return wrapper;
	}

	/**
	 * 构造并返回提现审核记录id查询条件
	 * 
	 * @return idCondition 提现审核记录id查询条件
	 */
	public Condition<String> id() {
		this.idCondition = new Condition<>();
		return this.idCondition;
	}
	
	/**
	 * 获取提现审核记录id查询条件
	 * 
	 * @return idCondition 提现审核记录id查询条件
	 */
	public Condition<String> getIdCondition() {
		return idCondition;
	}

	/**
	 * 设置提现审核记录id查询条件
	 * 
	 * @param idCondition 提现审核记录id查询条件
	 */
	public void setIdCondition(Condition<String> idCondition) {
		this.idCondition = idCondition;
	}

	/**
	 * 构造并返回用户id查询条件
	 * 
	 * @return userIdCondition 用户id查询条件
	 */
	public Condition<String> userId() {
		this.userIdCondition = new Condition<>();
		return this.userIdCondition;
	}
	
	/**
	 * 获取用户id查询条件
	 * 
	 * @return userIdCondition 用户id查询条件
	 */
	public Condition<String> getUserIdCondition() {
		return userIdCondition;
	}

	/**
	 * 设置用户id查询条件
	 * 
	 * @param userIdCondition 用户id查询条件
	 */
	public void setUserIdCondition(Condition<String> userIdCondition) {
		this.userIdCondition = userIdCondition;
	}

	/**
	 * 构造并返回钱包ID查询条件
	 * 
	 * @return walletIdCondition 钱包ID查询条件
	 */
	public Condition<String> walletId() {
		this.walletIdCondition = new Condition<>();
		return this.walletIdCondition;
	}
	
	/**
	 * 获取钱包ID查询条件
	 * 
	 * @return walletIdCondition 钱包ID查询条件
	 */
	public Condition<String> getWalletIdCondition() {
		return walletIdCondition;
	}

	/**
	 * 设置钱包ID查询条件
	 * 
	 * @param walletIdCondition 钱包ID查询条件
	 */
	public void setWalletIdCondition(Condition<String> walletIdCondition) {
		this.walletIdCondition = walletIdCondition;
	}

	/**
	 * 构造并返回[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件
	 * 
	 * @return userTypeCondition [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件
	 */
	public Condition<CheckWithdrawRecordUserType> userType() {
		this.userTypeCondition = new Condition<>();
		return this.userTypeCondition;
	}
	
	/**
	 * 获取[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件
	 * 
	 * @return userTypeCondition [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件
	 */
	public Condition<CheckWithdrawRecordUserType> getUserTypeCondition() {
		return userTypeCondition;
	}

	/**
	 * 设置[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件
	 * 
	 * @param userTypeCondition [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER查询条件
	 */
	public void setUserTypeCondition(Condition<CheckWithdrawRecordUserType> userTypeCondition) {
		this.userTypeCondition = userTypeCondition;
	}

	/**
	 * 构造并返回提现金额查询条件
	 * 
	 * @return withdrawDepositCondition 提现金额查询条件
	 */
	public Condition<BigDecimal> withdrawDeposit() {
		this.withdrawDepositCondition = new Condition<>();
		return this.withdrawDepositCondition;
	}
	
	/**
	 * 获取提现金额查询条件
	 * 
	 * @return withdrawDepositCondition 提现金额查询条件
	 */
	public Condition<BigDecimal> getWithdrawDepositCondition() {
		return withdrawDepositCondition;
	}

	/**
	 * 设置提现金额查询条件
	 * 
	 * @param withdrawDepositCondition 提现金额查询条件
	 */
	public void setWithdrawDepositCondition(Condition<BigDecimal> withdrawDepositCondition) {
		this.withdrawDepositCondition = withdrawDepositCondition;
	}

	/**
	 * 构造并返回提现后金额查询条件
	 * 
	 * @return amountAfterWithdrawalCondition 提现后金额查询条件
	 */
	public Condition<BigDecimal> amountAfterWithdrawal() {
		this.amountAfterWithdrawalCondition = new Condition<>();
		return this.amountAfterWithdrawalCondition;
	}
	
	/**
	 * 获取提现后金额查询条件
	 * 
	 * @return amountAfterWithdrawalCondition 提现后金额查询条件
	 */
	public Condition<BigDecimal> getAmountAfterWithdrawalCondition() {
		return amountAfterWithdrawalCondition;
	}

	/**
	 * 设置提现后金额查询条件
	 * 
	 * @param amountAfterWithdrawalCondition 提现后金额查询条件
	 */
	public void setAmountAfterWithdrawalCondition(Condition<BigDecimal> amountAfterWithdrawalCondition) {
		this.amountAfterWithdrawalCondition = amountAfterWithdrawalCondition;
	}

	/**
	 * 构造并返回开户行查询条件
	 * 
	 * @return bankOfDepositCondition 开户行查询条件
	 */
	public Condition<String> bankOfDeposit() {
		this.bankOfDepositCondition = new Condition<>();
		return this.bankOfDepositCondition;
	}
	
	/**
	 * 获取开户行查询条件
	 * 
	 * @return bankOfDepositCondition 开户行查询条件
	 */
	public Condition<String> getBankOfDepositCondition() {
		return bankOfDepositCondition;
	}

	/**
	 * 设置开户行查询条件
	 * 
	 * @param bankOfDepositCondition 开户行查询条件
	 */
	public void setBankOfDepositCondition(Condition<String> bankOfDepositCondition) {
		this.bankOfDepositCondition = bankOfDepositCondition;
	}

	/**
	 * 构造并返回银行卡号查询条件
	 * 
	 * @return encBankNoCondition 银行卡号查询条件
	 */
	public Condition<String> encBankNo() {
		this.encBankNoCondition = new Condition<>();
		return this.encBankNoCondition;
	}
	
	/**
	 * 获取银行卡号查询条件
	 * 
	 * @return encBankNoCondition 银行卡号查询条件
	 */
	public Condition<String> getEncBankNoCondition() {
		return encBankNoCondition;
	}

	/**
	 * 设置银行卡号查询条件
	 * 
	 * @param encBankNoCondition 银行卡号查询条件
	 */
	public void setEncBankNoCondition(Condition<String> encBankNoCondition) {
		this.encBankNoCondition = encBankNoCondition;
	}

	/**
	 * 构造并返回账户名查询条件
	 * 
	 * @return accountNameCondition 账户名查询条件
	 */
	public Condition<String> accountName() {
		this.accountNameCondition = new Condition<>();
		return this.accountNameCondition;
	}
	
	/**
	 * 获取账户名查询条件
	 * 
	 * @return accountNameCondition 账户名查询条件
	 */
	public Condition<String> getAccountNameCondition() {
		return accountNameCondition;
	}

	/**
	 * 设置账户名查询条件
	 * 
	 * @param accountNameCondition 账户名查询条件
	 */
	public void setAccountNameCondition(Condition<String> accountNameCondition) {
		this.accountNameCondition = accountNameCondition;
	}

	/**
	 * 构造并返回[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件
	 * 
	 * @return statusCondition [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件
	 */
	public Condition<CheckWithdrawRecordStatus> status() {
		this.statusCondition = new Condition<>();
		return this.statusCondition;
	}
	
	/**
	 * 获取[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件
	 * 
	 * @return statusCondition [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件
	 */
	public Condition<CheckWithdrawRecordStatus> getStatusCondition() {
		return statusCondition;
	}

	/**
	 * 设置[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件
	 * 
	 * @param statusCondition [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS查询条件
	 */
	public void setStatusCondition(Condition<CheckWithdrawRecordStatus> statusCondition) {
		this.statusCondition = statusCondition;
	}

	/**
	 * 构造并返回创建人ID查询条件
	 * 
	 * @return createdByCondition 创建人ID查询条件
	 */
	public Condition<String> createdBy() {
		this.createdByCondition = new Condition<>();
		return this.createdByCondition;
	}
	
	/**
	 * 获取创建人ID查询条件
	 * 
	 * @return createdByCondition 创建人ID查询条件
	 */
	public Condition<String> getCreatedByCondition() {
		return createdByCondition;
	}

	/**
	 * 设置创建人ID查询条件
	 * 
	 * @param createdByCondition 创建人ID查询条件
	 */
	public void setCreatedByCondition(Condition<String> createdByCondition) {
		this.createdByCondition = createdByCondition;
	}

	/**
	 * 构造并返回创建时间查询条件
	 * 
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> createdTime() {
		this.createdTimeCondition = new Condition<>();
		return this.createdTimeCondition;
	}
	
	/**
	 * 获取创建时间查询条件
	 * 
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> getCreatedTimeCondition() {
		return createdTimeCondition;
	}

	/**
	 * 设置创建时间查询条件
	 * 
	 * @param createdTimeCondition 创建时间查询条件
	 */
	public void setCreatedTimeCondition(Condition<LocalDateTime> createdTimeCondition) {
		this.createdTimeCondition = createdTimeCondition;
	}

	/**
	 * 构造并返回审核人查询条件
	 * 
	 * @return checkedByCondition 审核人查询条件
	 */
	public Condition<Long> checkedBy() {
		this.checkedByCondition = new Condition<>();
		return this.checkedByCondition;
	}
	
	/**
	 * 获取审核人查询条件
	 * 
	 * @return checkedByCondition 审核人查询条件
	 */
	public Condition<Long> getCheckedByCondition() {
		return checkedByCondition;
	}

	/**
	 * 设置审核人查询条件
	 * 
	 * @param checkedByCondition 审核人查询条件
	 */
	public void setCheckedByCondition(Condition<Long> checkedByCondition) {
		this.checkedByCondition = checkedByCondition;
	}

	/**
	 * 构造并返回审核时间查询条件
	 * 
	 * @return checkedTimeCondition 审核时间查询条件
	 */
	public Condition<LocalDateTime> checkedTime() {
		this.checkedTimeCondition = new Condition<>();
		return this.checkedTimeCondition;
	}
	
	/**
	 * 获取审核时间查询条件
	 * 
	 * @return checkedTimeCondition 审核时间查询条件
	 */
	public Condition<LocalDateTime> getCheckedTimeCondition() {
		return checkedTimeCondition;
	}

	/**
	 * 设置审核时间查询条件
	 * 
	 * @param checkedTimeCondition 审核时间查询条件
	 */
	public void setCheckedTimeCondition(Condition<LocalDateTime> checkedTimeCondition) {
		this.checkedTimeCondition = checkedTimeCondition;
	}

}
